今天來講講jvm的一大缺點,啟動速度慢
光啟動我們這次簡單的app,他都要花超久的時間啟動
尤其是我們選配低等級的vm
後來有個技術可以把東西先包成binary,這樣啟動時間可以快滿多的
Graalvm,最簡單的一句話說明:
GraalVM compiles your Java applications ahead of time into standalone binaries.
但是,他的repl就會有些問題(未來應該會解決),還有一些lib的還需要調整,包裝成aot會有問題
那對於我們現在是滿簡單的,只需要兩個步驟
這邊我是使用mac
按照他的步驟,下載對應的版本,解壓縮之後放到 /Library/Java/JavaVirtualMachines
sudo mv graalvm-jdk-17.0.8+9.1 /Library/Java/JavaVirtualMachines
這邊我不想用髒我的環境,所以我把路徑獨立出來,在同個shall用一下環境變數
export GRAALVM=/Library/Java/JavaVirtualMachines/graalvm-jdk-17.0.8+9.1/Contents/Home
然後
$GRAALVM/bin/java -version
我們就可以看到對應的環境了
最後就是打包
$GRAALVM/bin/native-image -jar target/app.jar
最終就可以在根目錄看到一個app執行
./app
啟動速度就快滿多的(但跟其他語言比確實還是慢XDD)
沒有銀彈,一切都是取捨